/*
 * Copyright 2020 HPB Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.hpb.bc.example;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ApiKeyExample {
    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    protected String orderByClause;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    protected boolean distinct;

    /**
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    protected List<Criteria> oredCriteria;

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public ApiKeyExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public String getOrderByClause() {
        return orderByClause;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public boolean isDistinct() {
        return distinct;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andApiKeyIsNull() {
            addCriterion("api_key is null");
            return (Criteria) this;
        }

        public Criteria andApiKeyIsNotNull() {
            addCriterion("api_key is not null");
            return (Criteria) this;
        }

        public Criteria andApiKeyEqualTo(String value) {
            addCriterion("api_key =", value, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyNotEqualTo(String value) {
            addCriterion("api_key <>", value, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyGreaterThan(String value) {
            addCriterion("api_key >", value, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyGreaterThanOrEqualTo(String value) {
            addCriterion("api_key >=", value, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyLessThan(String value) {
            addCriterion("api_key <", value, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyLessThanOrEqualTo(String value) {
            addCriterion("api_key <=", value, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyLike(String value) {
            addCriterion("api_key like", value, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyNotLike(String value) {
            addCriterion("api_key not like", value, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyIn(List<String> values) {
            addCriterion("api_key in", values, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyNotIn(List<String> values) {
            addCriterion("api_key not in", values, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyBetween(String value1, String value2) {
            addCriterion("api_key between", value1, value2, "apiKey");
            return (Criteria) this;
        }

        public Criteria andApiKeyNotBetween(String value1, String value2) {
            addCriterion("api_key not between", value1, value2, "apiKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyIsNull() {
            addCriterion("private_key is null");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyIsNotNull() {
            addCriterion("private_key is not null");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyEqualTo(String value) {
            addCriterion("private_key =", value, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyNotEqualTo(String value) {
            addCriterion("private_key <>", value, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyGreaterThan(String value) {
            addCriterion("private_key >", value, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyGreaterThanOrEqualTo(String value) {
            addCriterion("private_key >=", value, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyLessThan(String value) {
            addCriterion("private_key <", value, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyLessThanOrEqualTo(String value) {
            addCriterion("private_key <=", value, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyLike(String value) {
            addCriterion("private_key like", value, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyNotLike(String value) {
            addCriterion("private_key not like", value, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyIn(List<String> values) {
            addCriterion("private_key in", values, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyNotIn(List<String> values) {
            addCriterion("private_key not in", values, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyBetween(String value1, String value2) {
            addCriterion("private_key between", value1, value2, "privateKey");
            return (Criteria) this;
        }

        public Criteria andPrivateKeyNotBetween(String value1, String value2) {
            addCriterion("private_key not between", value1, value2, "privateKey");
            return (Criteria) this;
        }

        public Criteria andUsageLimitIsNull() {
            addCriterion("usage_limit is null");
            return (Criteria) this;
        }

        public Criteria andUsageLimitIsNotNull() {
            addCriterion("usage_limit is not null");
            return (Criteria) this;
        }

        public Criteria andUsageLimitEqualTo(Long value) {
            addCriterion("usage_limit =", value, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitNotEqualTo(Long value) {
            addCriterion("usage_limit <>", value, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitGreaterThan(Long value) {
            addCriterion("usage_limit >", value, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitGreaterThanOrEqualTo(Long value) {
            addCriterion("usage_limit >=", value, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitLessThan(Long value) {
            addCriterion("usage_limit <", value, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitLessThanOrEqualTo(Long value) {
            addCriterion("usage_limit <=", value, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitIn(List<Long> values) {
            addCriterion("usage_limit in", values, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitNotIn(List<Long> values) {
            addCriterion("usage_limit not in", values, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitBetween(Long value1, Long value2) {
            addCriterion("usage_limit between", value1, value2, "usageLimit");
            return (Criteria) this;
        }

        public Criteria andUsageLimitNotBetween(Long value1, Long value2) {
            addCriterion("usage_limit not between", value1, value2, "usageLimit");
            return (Criteria) this;
        }


        public Criteria andAppNameIsNull() {
            addCriterion("app_name is null");
            return (Criteria) this;
        }

        public Criteria andAppNameIsNotNull() {
            addCriterion("app_name is not null");
            return (Criteria) this;
        }

        public Criteria andAppNameEqualTo(String value) {
            addCriterion("app_name =", value, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameNotEqualTo(String value) {
            addCriterion("app_name <>", value, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameGreaterThan(String value) {
            addCriterion("app_name >", value, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameGreaterThanOrEqualTo(String value) {
            addCriterion("app_name >=", value, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameLessThan(String value) {
            addCriterion("app_name <", value, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameLessThanOrEqualTo(String value) {
            addCriterion("app_name <=", value, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameLike(String value) {
            addCriterion("app_name like", value, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameNotLike(String value) {
            addCriterion("app_name not like", value, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameIn(List<String> values) {
            addCriterion("app_name in", values, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameNotIn(List<String> values) {
            addCriterion("app_name not in", values, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameBetween(String value1, String value2) {
            addCriterion("app_name between", value1, value2, "appName");
            return (Criteria) this;
        }

        public Criteria andAppNameNotBetween(String value1, String value2) {
            addCriterion("app_name not between", value1, value2, "appName");
            return (Criteria) this;
        }


        public Criteria andRegistrationDateIsNull() {
            addCriterion("registration_date is null");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateIsNotNull() {
            addCriterion("registration_date is not null");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateEqualTo(Date value) {
            addCriterion("registration_date =", value, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateNotEqualTo(Date value) {
            addCriterion("registration_date <>", value, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateGreaterThan(Date value) {
            addCriterion("registration_date >", value, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateGreaterThanOrEqualTo(Date value) {
            addCriterion("registration_date >=", value, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateLessThan(Date value) {
            addCriterion("registration_date <", value, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateLessThanOrEqualTo(Date value) {
            addCriterion("registration_date <=", value, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateIn(List<Date> values) {
            addCriterion("registration_date in", values, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateNotIn(List<Date> values) {
            addCriterion("registration_date not in", values, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateBetween(Date value1, Date value2) {
            addCriterion("registration_date between", value1, value2, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andRegistrationDateNotBetween(Date value1, Date value2) {
            addCriterion("registration_date not between", value1, value2, "registrationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateIsNull() {
            addCriterion("activation_date is null");
            return (Criteria) this;
        }

        public Criteria andActivationDateIsNotNull() {
            addCriterion("activation_date is not null");
            return (Criteria) this;
        }

        public Criteria andActivationDateEqualTo(Date value) {
            addCriterion("activation_date =", value, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateNotEqualTo(Date value) {
            addCriterion("activation_date <>", value, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateGreaterThan(Date value) {
            addCriterion("activation_date >", value, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateGreaterThanOrEqualTo(Date value) {
            addCriterion("activation_date >=", value, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateLessThan(Date value) {
            addCriterion("activation_date <", value, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateLessThanOrEqualTo(Date value) {
            addCriterion("activation_date <=", value, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateIn(List<Date> values) {
            addCriterion("activation_date in", values, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateNotIn(List<Date> values) {
            addCriterion("activation_date not in", values, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateBetween(Date value1, Date value2) {
            addCriterion("activation_date between", value1, value2, "activationDate");
            return (Criteria) this;
        }

        public Criteria andActivationDateNotBetween(Date value1, Date value2) {
            addCriterion("activation_date not between", value1, value2, "activationDate");
            return (Criteria) this;
        }

        public Criteria andEmailIsNull() {
            addCriterion("email is null");
            return (Criteria) this;
        }

        public Criteria andEmailIsNotNull() {
            addCriterion("email is not null");
            return (Criteria) this;
        }

        public Criteria andEmailEqualTo(String value) {
            addCriterion("email =", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotEqualTo(String value) {
            addCriterion("email <>", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailGreaterThan(String value) {
            addCriterion("email >", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailGreaterThanOrEqualTo(String value) {
            addCriterion("email >=", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLessThan(String value) {
            addCriterion("email <", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLessThanOrEqualTo(String value) {
            addCriterion("email <=", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailLike(String value) {
            addCriterion("email like", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotLike(String value) {
            addCriterion("email not like", value, "email");
            return (Criteria) this;
        }

        public Criteria andEmailIn(List<String> values) {
            addCriterion("email in", values, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotIn(List<String> values) {
            addCriterion("email not in", values, "email");
            return (Criteria) this;
        }

        public Criteria andEmailBetween(String value1, String value2) {
            addCriterion("email between", value1, value2, "email");
            return (Criteria) this;
        }

        public Criteria andEmailNotBetween(String value1, String value2) {
            addCriterion("email not between", value1, value2, "email");
            return (Criteria) this;
        }

        public Criteria andLevelStrIsNull() {
            addCriterion("level_str is null");
            return (Criteria) this;
        }

        public Criteria andLevelStrIsNotNull() {
            addCriterion("level_str is not null");
            return (Criteria) this;
        }

        public Criteria andLevelStrEqualTo(String value) {
            addCriterion("level_str =", value, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrNotEqualTo(String value) {
            addCriterion("level_str <>", value, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrGreaterThan(String value) {
            addCriterion("level_str >", value, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrGreaterThanOrEqualTo(String value) {
            addCriterion("level_str >=", value, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrLessThan(String value) {
            addCriterion("level_str <", value, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrLessThanOrEqualTo(String value) {
            addCriterion("level_str <=", value, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrLike(String value) {
            addCriterion("level_str like", value, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrNotLike(String value) {
            addCriterion("level_str not like", value, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrIn(List<String> values) {
            addCriterion("level_str in", values, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrNotIn(List<String> values) {
            addCriterion("level not in", values, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrBetween(String value1, String value2) {
            addCriterion("level_str between", value1, value2, "levelStr");
            return (Criteria) this;
        }

        public Criteria andLevelStrNotBetween(String value1, String value2) {
            addCriterion("level_str not between", value1, value2, "levelStr");
            return (Criteria) this;
        }

        public Criteria andFirstNameIsNull() {
            addCriterion("first_name is null");
            return (Criteria) this;
        }

        public Criteria andFirstNameIsNotNull() {
            addCriterion("first_name is not null");
            return (Criteria) this;
        }

        public Criteria andFirstNameEqualTo(String value) {
            addCriterion("first_name =", value, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameNotEqualTo(String value) {
            addCriterion("first_name <>", value, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameGreaterThan(String value) {
            addCriterion("first_name >", value, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameGreaterThanOrEqualTo(String value) {
            addCriterion("first_name >=", value, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameLessThan(String value) {
            addCriterion("first_name <", value, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameLessThanOrEqualTo(String value) {
            addCriterion("first_name <=", value, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameLike(String value) {
            addCriterion("first_name like", value, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameNotLike(String value) {
            addCriterion("first_name not like", value, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameIn(List<String> values) {
            addCriterion("first_name in", values, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameNotIn(List<String> values) {
            addCriterion("first_name not in", values, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameBetween(String value1, String value2) {
            addCriterion("first_name between", value1, value2, "firstName");
            return (Criteria) this;
        }

        public Criteria andFirstNameNotBetween(String value1, String value2) {
            addCriterion("first_name not between", value1, value2, "firstName");
            return (Criteria) this;
        }

        public Criteria andLastNameIsNull() {
            addCriterion("last_name is null");
            return (Criteria) this;
        }

        public Criteria andLastNameIsNotNull() {
            addCriterion("last_name is not null");
            return (Criteria) this;
        }

        public Criteria andLastNameEqualTo(String value) {
            addCriterion("last_name =", value, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameNotEqualTo(String value) {
            addCriterion("last_name <>", value, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameGreaterThan(String value) {
            addCriterion("last_name >", value, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameGreaterThanOrEqualTo(String value) {
            addCriterion("last_name >=", value, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameLessThan(String value) {
            addCriterion("last_name <", value, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameLessThanOrEqualTo(String value) {
            addCriterion("last_name <=", value, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameLike(String value) {
            addCriterion("last_name like", value, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameNotLike(String value) {
            addCriterion("last_name not like", value, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameIn(List<String> values) {
            addCriterion("last_name in", values, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameNotIn(List<String> values) {
            addCriterion("last_name not in", values, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameBetween(String value1, String value2) {
            addCriterion("last_name between", value1, value2, "lastName");
            return (Criteria) this;
        }

        public Criteria andLastNameNotBetween(String value1, String value2) {
            addCriterion("last_name not between", value1, value2, "lastName");
            return (Criteria) this;
        }

        public Criteria andCompanyIsNull() {
            addCriterion("company is null");
            return (Criteria) this;
        }

        public Criteria andCompanyIsNotNull() {
            addCriterion("company is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyEqualTo(String value) {
            addCriterion("company =", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyNotEqualTo(String value) {
            addCriterion("company <>", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyGreaterThan(String value) {
            addCriterion("company >", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyGreaterThanOrEqualTo(String value) {
            addCriterion("company >=", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyLessThan(String value) {
            addCriterion("company <", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyLessThanOrEqualTo(String value) {
            addCriterion("company <=", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyLike(String value) {
            addCriterion("company like", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyNotLike(String value) {
            addCriterion("company not like", value, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyIn(List<String> values) {
            addCriterion("company in", values, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyNotIn(List<String> values) {
            addCriterion("company not in", values, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyBetween(String value1, String value2) {
            addCriterion("company between", value1, value2, "company");
            return (Criteria) this;
        }

        public Criteria andCompanyNotBetween(String value1, String value2) {
            addCriterion("company not between", value1, value2, "company");
            return (Criteria) this;
        }

        public Criteria andWebsiteIsNull() {
            addCriterion("website is null");
            return (Criteria) this;
        }

        public Criteria andWebsiteIsNotNull() {
            addCriterion("website is not null");
            return (Criteria) this;
        }

        public Criteria andWebsiteEqualTo(String value) {
            addCriterion("website =", value, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteNotEqualTo(String value) {
            addCriterion("website <>", value, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteGreaterThan(String value) {
            addCriterion("website >", value, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteGreaterThanOrEqualTo(String value) {
            addCriterion("website >=", value, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteLessThan(String value) {
            addCriterion("website <", value, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteLessThanOrEqualTo(String value) {
            addCriterion("website <=", value, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteLike(String value) {
            addCriterion("website like", value, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteNotLike(String value) {
            addCriterion("website not like", value, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteIn(List<String> values) {
            addCriterion("website in", values, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteNotIn(List<String> values) {
            addCriterion("website not in", values, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteBetween(String value1, String value2) {
            addCriterion("website between", value1, value2, "website");
            return (Criteria) this;
        }

        public Criteria andWebsiteNotBetween(String value1, String value2) {
            addCriterion("website not between", value1, value2, "website");
            return (Criteria) this;
        }

        public Criteria andSectorIsNull() {
            addCriterion("sector is null");
            return (Criteria) this;
        }

        public Criteria andSectorIsNotNull() {
            addCriterion("sector is not null");
            return (Criteria) this;
        }

        public Criteria andSectorEqualTo(String value) {
            addCriterion("sector =", value, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorNotEqualTo(String value) {
            addCriterion("sector <>", value, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorGreaterThan(String value) {
            addCriterion("sector >", value, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorGreaterThanOrEqualTo(String value) {
            addCriterion("sector >=", value, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorLessThan(String value) {
            addCriterion("sector <", value, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorLessThanOrEqualTo(String value) {
            addCriterion("sector <=", value, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorLike(String value) {
            addCriterion("sector like", value, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorNotLike(String value) {
            addCriterion("sector not like", value, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorIn(List<String> values) {
            addCriterion("sector in", values, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorNotIn(List<String> values) {
            addCriterion("sector not in", values, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorBetween(String value1, String value2) {
            addCriterion("sector between", value1, value2, "sector");
            return (Criteria) this;
        }

        public Criteria andSectorNotBetween(String value1, String value2) {
            addCriterion("sector not between", value1, value2, "sector");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateIsNull() {
            addCriterion("deprecation_date is null");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateIsNotNull() {
            addCriterion("deprecation_date is not null");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateEqualTo(Date value) {
            addCriterion("deprecation_date =", value, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateNotEqualTo(Date value) {
            addCriterion("deprecation_date <>", value, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateGreaterThan(Date value) {
            addCriterion("deprecation_date >", value, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateGreaterThanOrEqualTo(Date value) {
            addCriterion("deprecation_date >=", value, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateLessThan(Date value) {
            addCriterion("deprecation_date <", value, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateLessThanOrEqualTo(Date value) {
            addCriterion("deprecation_date <=", value, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateIn(List<Date> values) {
            addCriterion("deprecation_date in", values, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateNotIn(List<Date> values) {
            addCriterion("deprecation_date not in", values, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateBetween(Date value1, Date value2) {
            addCriterion("deprecation_date between", value1, value2, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andDeprecationDateNotBetween(Date value1, Date value2) {
            addCriterion("deprecation_date not between", value1, value2, "deprecationDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateIsNull() {
            addCriterion("lastaccess_date is null");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateIsNotNull() {
            addCriterion("lastaccess_date is not null");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateEqualTo(Date value) {
            addCriterion("lastaccess_date =", value, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateNotEqualTo(Date value) {
            addCriterion("lastaccess_date <>", value, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateGreaterThan(Date value) {
            addCriterion("lastaccess_date >", value, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateGreaterThanOrEqualTo(Date value) {
            addCriterion("lastaccess_date >=", value, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateLessThan(Date value) {
            addCriterion("lastaccess_date <", value, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateLessThanOrEqualTo(Date value) {
            addCriterion("lastaccess_date <=", value, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateIn(List<Date> values) {
            addCriterion("lastaccess_date in", values, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateNotIn(List<Date> values) {
            addCriterion("lastaccess_date not in", values, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateBetween(Date value1, Date value2) {
            addCriterion("lastaccess_date between", value1, value2, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andLastaccessDateNotBetween(Date value1, Date value2) {
            addCriterion("lastaccess_date not between", value1, value2, "lastaccessDate");
            return (Criteria) this;
        }

        public Criteria andUsageNumberIsNull() {
            addCriterion("usage_number is null");
            return (Criteria) this;
        }

        public Criteria andUsageNumberIsNotNull() {
            addCriterion("usage_number is not null");
            return (Criteria) this;
        }

        public Criteria andUsageNumberEqualTo(Long value) {
            addCriterion("usage_number =", value, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberNotEqualTo(Long value) {
            addCriterion("usage_number <>", value, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberGreaterThan(Long value) {
            addCriterion("usage_number >", value, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberGreaterThanOrEqualTo(Long value) {
            addCriterion("usage_number >=", value, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberLessThan(Long value) {
            addCriterion("usage_number <", value, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberLessThanOrEqualTo(Long value) {
            addCriterion("usage_number <=", value, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberIn(List<Long> values) {
            addCriterion("usage_number in", values, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberNotIn(List<Long> values) {
            addCriterion("usage_number not in", values, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberBetween(Long value1, Long value2) {
            addCriterion("usage_number between", value1, value2, "usageNumber");
            return (Criteria) this;
        }

        public Criteria andUsageNumberNotBetween(Long value1, Long value2) {
            addCriterion("usage_number not between", value1, value2, "usageNumber");
            return (Criteria) this;
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table api_key_1
     *
     * @mbg.generated do_not_delete_during_merge
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    /**
     * This class was generated by MyBatis Generator.
     * This class corresponds to the database table api_key_1
     *
     * @mbg.generated
     */
    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}